package cn.yunhe.service;

import cn.yunhe.dao.ProductDao;
import cn.yunhe.entity.Product;
import cn.yunhe.util.Paganation;
import cn.yunhe.util.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class ProductService {
    SqlSession session = SqlSessionFactoryUtil.getSqlSession();
    ProductDao productDao = session.getMapper(ProductDao.class);

    /**
     * 分页查询  所有的商品
     * @param pageNo
     * @return
     */
    public Paganation<Product> getAllProduct(int pageNo) {
        Paganation<Product> paganation = new Paganation<Product>();
        paganation.setPageNo(pageNo);

        int totalRows=productDao.getTotalRows();
        paganation.setTotalRows(totalRows);
        Paganation<Product> page = new Paganation<Product>();
        page.setPageStart((pageNo-1)*Paganation.PAGE_SIZE);//起始行
        List<Product> list = productDao.getAllProduct(page);
        paganation.setItems(list);
        return paganation;
    }

    /**
     * 添加  商品
     * @param product
     * @return
     */
    public boolean addProduct(Product product){
        boolean flag=productDao.addProduct(product);
        session.commit();
        session.close();
        return flag;
    }
    /**
     * 获取给商品的详细信息
     *
     * @param productid
     * @return
     */
    public Product getProduct(int productid) {
        return productDao.getProduct(productid);
    }

    /**
     * 修改商品
     * @param product
     * @return
     */
    public boolean updateProduct(Product product) {
        boolean flag = productDao.updateProduct(product);
        session.commit();
        session.close();
        return flag;
    }

    /**
     * 删除商品
     * @param productid
     * @return
     */
    public boolean deleteProduct(int productid){
        boolean flag=productDao.deleteProduct(productid);
        session.commit();
        session.close();
        return flag;
    }

}
